package cn.lingyangwl.agile.model.constants;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 租户数据隔离级别
 * @author shenguangyang
 */
@Getter
@AllArgsConstructor
public enum DataIsolateLevel {
    /**
     * 主租户, 只查询主租户的数据
     * eg: 传递子租户id=2, 但是会查询其主租户的数据
     */
    MAIN("1"),

    /**
     * 租户独立, 直接通过传递的租户id进行过滤数据
     */
    ALONE("2"),

    /**
     * 只查询管理型租户数据
     * eg: 传递租户id=2(可能是子租户或者主租户), 最后都会查询到关联的场景(应用),
     * 进而查询到管理该场景(应用的)租户id, 最后进行过滤
     */
    MGT("3"),

    /**
     * 只查询平台场景数据, 其实平台租户也是一种管理型租户, 只是比较特殊
     */
    PLATFORM("4"),

    /**
     * 查询全部租户数据, 包含主租户和子租户
     */
    ALL("9"),

    ;
    private final String code;
}
